#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<windows.h>

int position_x, position_y;//飞机位置
int high, width;//游戏尺寸
int bullet_x, bullet_y;//子弹
int enemy_x, enemy_y;//敌机位置
//数据初始化
void startup() {
	high = 18;
	width = 30;
	position_x = high / 2;
	position_y = width / 2;
	bullet_y = position_y;
	bullet_x = -1;
	enemy_x = 0;
	enemy_y = width / 2;
}
//显示画面
void show() {
	int i, j;
	system("cls");
	for (i = 0; i < high; i++) {
		for (j = 0; j < width; j++) {
			if (i == position_x && j == position_y) {
				printf("*");//输出飞机
			}
			else if (i == bullet_x && j == bullet_y) {
				printf("|");//输出子弹
			}
			else if (i == enemy_x && j == enemy_y) {
				printf("@");//输出敌机
			}
			else {
				printf(" ");//输出空格
			}
		}
		printf("\n");
	}
}
//与用户输入无关的更新
void updatewithoutinput() {

	static int speed = 0;//用于控制飞机下落速度
	if (speed < 10) {
		speed++;
	}
	if (bullet_x > -1) {
		bullet_x--;
	}
	if (enemy_x > high) {
		enemy_x = 0;
		enemy_y = rand() % width;
	}
	else {
		if (speed == 10) {
			enemy_x++;
			speed = 0;
		}
	}
	
}
//与用户输入有关的更新
void updatewithinput() {
	char input;
	if (_kbhit()) {
		input = _getch();
		if (input == 'a') {
			position_y--;
		}
		if (input == 'd') {
			position_y++;
		}
		if (input == 'w') {
			position_x--;
		}
		if (input == 's') {
			position_x++;
		}
		if (input ==' ') {
			bullet_x = position_x - 1;
			bullet_y = position_y;
		}
	}
}
int main()
{
	startup();
	while (1) {
		show();
		updatewithoutinput();
		updatewithinput();
	}
	return 0;
}